package com.linkgie.galaxyframework.runtime;

import java.util.concurrent.ExecutorService;

public interface RuntimeEnvironment {

	/**
	 * 运行标识；
	 * <p>
	 * 
	 * 表示系统一次启动运行的具有全局唯一性的随机值；
	 * <p>
	 * 
	 * 在系统启动时进行初始化，运行期间维持不变；
	 * <p>
	 * 
	 * 每一次重新启动之后都会生成新的随机的唯一值；
	 * 
	 * @return
	 */
	long getRunId();

	/**
	 * 启动时间；
	 * 
	 * @return
	 */
	public long getStartTime();

	/**
	 * 运行时长，单位：毫秒；
	 * @return
	 */
	public long getUpTime();

	/**
	 * 检查本地的系统配置是否已经完备；<br>
	 * 
	 * 新安装的系统返回 false，需要先完成本地配置；
	 * 
	 * @return
	 */
	boolean isSystemReady();

	/**
	 * 默认的执行器；
	 * 
	 * @return
	 */
	ExecutorService getDefaultExecutor();

	String getLicenseState();

	/**
	 * 产品版本；
	 * 
	 * @return
	 */
	String getProductVersion();

	/**
	 * 当前运行实例的操作系统用户目录；
	 * 
	 * @return
	 */
	String getUserHome();
}